package br.com.moto.ejb;

import br.com.moto.entity.Amigo;
import br.com.moto.entity.Pessoa;
import java.util.List;
 
import javax.ejb.Stateless;
import javax.ejb.LocalBean;
 
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
 
@Stateless
@LocalBean
public class AmigoSessionBean {

    @PersistenceContext
    private EntityManager em;    

    public List<Amigo> retrieve() {
        Query query = em.createNamedQuery("Amigo.findAll");
        return query.getResultList();
    }
    
    public List getSolicitacao(String username){
        Query query = em.createNamedQuery("Amigo.findSolicitacao").setParameter("username", username);
        return query.getResultList();
    }       
    
    public Amigo getAmigo(Amigo amigo){
        Query query = em.createNamedQuery("Amigo.findById").setParameter("id", amigo.getId());
        return (Amigo) query.getSingleResult();
    }    
    
    public List<Amigo> getAmigoByPost(Integer postId) {
        Query query = em.createNamedQuery("Amigo.findByPost").setParameter("id", postId);
        return query.getResultList();
    }   
    
    public List<Amigo> findMeusAmigos(String username) {
        Query query = em.createNamedQuery("Amigo.findMeusAmigos").setParameter("email", username);
        return query.getResultList();
    }        
    
    public void delete(Amigo amigo) {
        Amigo excluir = em.find(Amigo.class, amigo.getId());
        em.remove(excluir);
    }    
        
    public Amigo create(Amigo amigo)
    {
        em.merge(amigo);          
        return amigo;
    }    

    public Amigo update(Amigo amigo)
    {
           
        Amigo updated = em.merge(amigo);        
        System.out.println("Amigo atualizado no bean");
        return updated;
    }
}
